package com.zjcode.cdcer.service;

import com.chinatechstar.component.commons.supports.PageData;
import com.google.gson.JsonObject;
import com.zjcode.cdcer.model.CityEntity;
import com.zjcode.cdcer.model.TkmSysOrg;
import com.zjcode.cdcer.model.TkmSysteminitImportInfo;
import com.zjcode.cdcer.model.ZjcodePhysicalExaminationInfo;
import com.zjcode.cdcer.model.basic.JsonObj;
import com.zjcode.cdcer.model.excel.SelfTestTableVo;
import com.zjcode.cdcer.model.excel.SysteminitImportInfo;
import com.zjcode.cdcer.pojo.CerSysteminitImportInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public interface CerSysteminitImportInfoService {

    Map<String, Object> listAllTableData(PageData pageData);

    JsonObj batchDeletion(PageData pageData);

    JsonObj oneClickDelete(PageData pageData);

    List<CerSysteminitImportInfo> getAllNoErrorData(PageData pageData);

    void updateCerSysteminitImportInfoStatus(PageData pageData);

    /**
     * 信息退回
     * @param pageData
     */
    void returnCerSysteminitImportInfoStatus(PageData pageData);

    List<LinkedHashMap<String, Object>> queryAllExportDataBy(PageData pageData);

    Map<String, Object> waitingFollowUpPersonnel(PageData pageData);

    List<LinkedHashMap<String, Object>> newQueryAllExportData(PageData pageData);

    JsonObj del(String id);

    JsonObj imageEscalation(PageData pageData);
    File commonImportConfig(MultipartFile file, String userId );
    LinkedHashMap<String, Object> getLinkedMapByList(SysteminitImportInfo info, String importError);
    JsonObj importGJData(MultipartFile file, HttpServletResponse response, String userId);
    void setCerPersonalInfoCommon(SysteminitImportInfo item, String userId, String extFlag,
                                         List<CityEntity> allCityInfo, List<CityEntity> allAreaInfo,
                                         List<CityEntity> allStreetInfo, List<CityEntity> allVillageInfo, List<TkmSysOrg> allOrgs );
    void setTkmSysteminitImportInfoCommon(SysteminitImportInfo item, String userId,String extFlag);
    List<CerSysteminitImportInfo> getAllInitImports();

    List<CerSysteminitImportInfo> getAllInitImportsByScreeningIds(List<String> screeningIdsByImport);

    void updateBatchStatusByIds(List<String> initIds, int delStatus);

    int addBatchInitImport(List<TkmSysteminitImportInfo> tkmSysteminitImportInfos);

    void getRedisByAddressCode(List<CityEntity> allCityInfo, List<CityEntity> allAreaInfo, List<CityEntity> allStreetInfo, List<CityEntity> allVillageInfo);

    JsonObj editPhysicalExaminationInfo(ZjcodePhysicalExaminationInfo info);

    JsonObj getPhysicalExaminationByInfoId(String infoId);

    JsonObj getAreaByUserId(Long userId);

    void exportSelfTestTable(PageData pageData,HttpServletResponse response);


    void setContentSelfTestInfo(JsonObject jsonObject, SelfTestTableVo info,Object colorectalCancerContent,TkmSysOrg org);
}
